package com.bang.study.day01.test;

import com.bang.study.day01.ListNode;

/**
 * @Auther: Bang
 * @Date: 2019/9/10 20:14
 * @Description: leetcode 203. 移除链表元素
 *          删除链表中等于给定值 val 的所有节点。
 *          示例:
 *          输入: 1->2->6->3->4->5->6, val = 6
 *          输出: 1->2->3->4->5
 */
public class Sulution203 {

    public ListNode removeElements(ListNode head, int val) {
        ListNode dummyNode = new ListNode(-1);
        dummyNode.next = head;
        ListNode prev = dummyNode;
        while (prev.next != null){
            if (prev.next.val == val) {
                // 移除当前节点
                prev.next = prev.next.next;
            }else {
                prev = prev.next;
            }
        }
        return dummyNode.next;
    }

    public static void main(String[] args) {
        ListNode listNode = new ListNode(new int[]{1, 2, 3,6, 4, 5, 6});
        System.out.println(listNode);
        ListNode res = new Sulution203().removeElements(listNode, 1);
        System.out.println(res);
    }
}
